﻿using System;
using EzDesk.Apps.Model.Message;
using System.Collections.Generic;
using EzDesk.Core.Model;
using System.ServiceModel;
using EzDesk.Utility.ServiceStatusInfo;

namespace EzDesk.Apps.Interface.Message
{
    [ServiceContract]
    public interface ITopicService
    {
        [OperationContract]
        StatusInfo ConfirmMessage(Guid topicId, Guid actorUserId);
        [OperationContract]
        StatusInfo<Guid> CreateNewTopic(Guid senderId, string messageTitle, string msgText, bool isNeedConfirm, string memberString);
        [OperationContract]
        StatusInfo<Topic> GetFullTopic(Guid topicId, Guid actorUserId);
        [OperationContract]
        StatusInfo ReplyToMessage(Guid senderId, Guid replyToMessageId, Guid topicId, string messageText, bool isReplyToAll);
        [OperationContract]
        StatusInfo<IList<SimpleUser>> GetPersonsInDept(Guid? deptId);
        [OperationContract]
        StatusInfo<List<Topic>> GetMessagesOutbox(Guid userId);
        [OperationContract]
        StatusInfo<List<MessageInbox>> GetMessagesInbox(Guid userId);
    }
}
